export type OSSLogPolicy = 'all' | 'driver-run-only';
export type RoleType = 'public' | 'private';

export interface AgentConfig {
  identity: string;
  advertiseIp: string;
  modelCleanup: boolean;
  failedJobCleanup: boolean;
  schemaValidation: boolean;
  gatewayHost: string;
  gatewayPort: number;
  ossPolicy: OSSLogPolicy;
  flushInterval: number;
  flushMaxItems: number;
  role: RoleType;
  password: string;
  storageCLIEnable: boolean;
  osInfoEnable: boolean;
  osInfoInterval: number;
}

export type AgentAbilities = {
  products: string[];
  identity: string;
  advertiseIp: string;
  role: RoleType;
  password: string;
}

export type StorageConfig = {
  type: 'oss' | 'minio';
  config: {
    host: string,
    port: number,
    bucket: string,
    accessKey: string,
    accessSecret: string
  }
}
export interface RegistratioResponse {
  success: boolean;
  response: {
    storage: StorageConfig
  }
}